#pragma once

///////////////////////////////////////////////////////////////////////////
//																		 //
//	Author:		Michael Mozdzierz										 //
//	Date:		12/12/2014												 //
//	Purpose:	Defines logic for the temple building type				 //
//																		 //
///////////////////////////////////////////////////////////////////////////

#include "Structure.h"
#include "../../../EdgeMath/Math.h"

class Temple : public Structure
{
protected:
	virtual Matrix getWorldTransform(void) override { return Matricies::CreateRotationX(Math::to_radians(90.f)) * Matricies::CreateTranslation(position); }
public:
	Temple(void);
	virtual ~Temple(void);

	// update the structure
	virtual void Update(float dt) override;

	// draw the structure
	virtual void Draw(void) override;

	// a callback for when this object has been interacted with
	virtual void Interact(void) override;

	// the distance someone has to be to be able to interact with this object
	virtual float getRange(void) const override { return 10.f; }

	virtual ObjectID getID(void) const override { return ObjectID::STRUCTURE_TEMPLE; }
};